/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cz.muni.fi.pa165.portalnahouby.api.serviceinterface;

import cz.muni.fi.pa165.portalnahouby.api.dto.PickerDTO;
import java.util.List;

/**
 * Interface for picker service
 * 
 * @author Lukas Marica
 */
public interface PickerService {
	
	/**
	 * Stores new picker
	 * @param picker 
	 * 
	 * @throws IllegalArgumentException on null picker or not null picker's id
	 */
	public void addPicker( PickerDTO picker  );
	
	/**
	 * Updates picker
	 * @param picker 
	 * 
	 * @throws IllegalArgumentException on null picker or null picker's id
	 */
	public void editPicker( PickerDTO picker  );
	
	/**
	 * Removes picker
	 * @param id 
	 * 
	 * @throws IllegalArgumentException on null id
	 */
	public void deletePicker( Long id );
	
	/**
	 * Finds picker
	 * @param id 
	 * 
	 * @throws IllegalArgumentException on null id
	 */
	public PickerDTO findPicker( Long id );
	
	/**
	 * Finds picker by name
	 * @param name 
	 * @param pass
	 * 
	 * @throws IllegalArgumentException on null name
	 */
	public PickerDTO findPickerByLoginPass( String name, String pass );
	
	/**
	 * Retrieves all available pickers
	 * @return List of all pickers
	 */
	public List<PickerDTO> getAllPickers();
}
